Incremental Redeenition of Open Implementations
نویسنده
چکیده
ions introduced from outside the system (ancestors) to those created internally using the former ones (progenies) [5]. A trace is a simpli ed version of our metaprogram construct. A trace has a path and a body. The path speci es the elements of the system that should be a ected, while the body speci es how they should be a ected by the introduction of the special behavior. However, traces do not provide adequate mechanisms for satisfying the requirements of the dynamic aspects of incremental rede nition. The propagation of special behavior occurs at the creation times of objects|it is coupled to the calling of give-rise-to operations. Since the propagation is related to creation primitives, a de nition of special behavior must traverse the whole trace path, although the target of propagation is only the last element in the path. Furthermore, after being propagated it is impossible to cancel a special behavior that is no longer needed, which is necessary for coping with the conditional nature of the extensions considered. Because the special behavior and its e ects are coupled within the trace, it is not possible to apply e ects speci cally to their targets. For example, a polygon should ask all lines it is supposed to be built of at creation time whether there is some special behavior to be propagated from them to the polygon, even if it none of them might be a xed-slope line. 5 Discussion In the following we evaluate the proposed approach with respect to the design issues associated with open implementations as presented by Kiczales [6]: The proposal provides a clean separation of concerns by supporting two kinds of descriptions: default and adjustment descriptions. These are administered in two separated spaces, which are indirectly connected to each other by means of managers, resulting in a broad and exible design space. This separation avoids the name explosion problem which is typical for approaches that use subclassing. The default behavior of the system is kept simple and intact through all possible rede nitions. The proposal allows extensions to be introduced into a system incrementally. Each rede nition is speci ed in terms of the preceding one by means of a set of collaborating adjustments. The step from one rede nition 23 stage to the next one is governed by combination rules and propagation instructions. The proposal provides good scope control. Since the behavioral frame of each object is determined by its corresponding MetaCombiner, and since the latter is a rst-class object, the rede nition of the system can be accomplished in a ne-grained way. For example, in the xed-slope lines example presented in Sect. 3, the propagation of special behavior to polygon objects does a ect only those polygons that include the xed-slope line currently rede ned. The proposal provides good interoperability. Since in our uniform object model everything is de ned in terms of combinators, partial descriptions and combination rules, all objects present a uniform view to their external world, which is independent of the current stage of their de nition. The proposal provides good reusability of behavioral descriptions, either default or adjustment ones. The default descriptions are shared by all virtual rede nitions without con icts. By keeping them separate from the default behavior, it is also possible to reuse semantically similar adjustments in several similar contexts. The proposal provides good extensibility. It was designed to be openended. Just like the default de nition any rede nition can be incrementally extended by introducing new adjustment descriptions by means of metaprograms. Since the implementation of the proposed model is still incomplete, its e ciency cannot be evaluated yet, but results are expected to be available soon. Nevertheless, we anticipate to have a (hopefully tolerable) overhead in certain application scenarios due to the presence of an additional indirection level. In this respect, we are investigating strategies to reduce the explicit indirection levels involved in a rede nition by performing as much rede nitions (combinations) as possible at the time when they are introduced into the system. 24 6 ConclusionsIn this paper we presented a model for supporting the incremental rede ni-tion of object-oriented open implementations. The model allows combining ofadvantages of both declarative and imperative metaobject protocols in orderto handle the static and the dynamic aspects of the incremental rede nition.In order to support the static rede nition, metaprograms, adjustment de-scriptions, and managers were introduced. Metaprograms are used to extendthe metadescription of the system, and the extension is speci ed as a set ofsemantically connected adjustment descriptions. The relationship betweenthe intended extension and the existing de nition is provided in the form ofcombination rules. The dispersed metadescription of the system is controlledby managers, which additionally control the process of dynamic rede nitionaccording to the instructions obtained by the translation of the metapro-grams. In the process of generating an appropriate imperative metaobjectprotocol from a given declarative one, the ClassCombiner mechanism wasemployed to combine partial descriptions dynamically and transparently toclients of the system. Since the ClassCombiner mechanism is based on in-troducing an additional level of abstraction between objects and classes, itallows a decoupled association of system components to their incrementallyrede nable description.There are several research topics which we plan to investigate in thefuture. First, it is intended to evaluate the usefulness of the proposed archi-tecture in di erent open implementation scenarios. Currently we are workingon applying the model in the context of programming languages, for provid-ing metaprotocol based mechanisms that support an explicit (encapsulated)specialization interface [7, 8]. The next step will be its application in theoperating systems area and other domains where adaptability and dynamicrede nition is an issue. Second, the implementation of the functionality ofthe proposed model must be completed and evaluated to determine areasfor possible performance improvements. Third, a very interesting area is thesearch for intelligent strategies that allow managers to \learn" from alreadyknown situations in order to be able to automatically handle new but similarsituations.25 References[1] Andrew Black, Charles Consel, Carlton Pu, Jonathan Walpole, CrispinCowan, Tito Autrey, Jon Inouye, Lakshmi Kethana, and Ke Zhang.Dream and Reality: Incremental Specialization in a Commercial Oper-ating System. Technical Report TR-95-001, Oregon Graduate Instituteof Science and Technology, 1995.[2] Adele Goldberg and David Robson. Smalltalk-80: The Language and itsImplementation. Addison-Wesley, 1983.[3] Bob Hinkle. Re ective Programming in Smalltalk-80. Tutorial Notes.The 9th Conference on Object Oriented Programming Systems Languagesand Applications, 1994.[4] Jon Inouye, Andrew Black, Calton Pu, and Jonathan Walpole. Domesti-cating Dynamic Diversity. Technical report, Oregon Graduate Instituteof Science and Technology, 1994.[5] Gregor Kiczales. Traces (A Cut at the \Make Isn't Generic" Problem).In Proceedings of the 1st International Symposium on Object Technolo-gies for Advanced Software, volume 742 of Lecture Notes in ComputerScience, pages 27{42. Springer-Verlag, 1993.[6] Gregor Kiczales. Towards a New Model of Abstraction for theEngineering of Software. Invited Talk at the 9th Conference onObject Oriented Programming Systems Languages and Applications(http://www.xerox.com/PARC/spl/eca/oi.html), 1994.[7] Gregor Kiczales and John Lamping. Issues in the Design and Docu-mentation of Class Libraries. In Proceedings of the 7th Conference onObject-Oriented Programming Systems Languages and Applications, vol-ume 27(10) of ACM SIGPLAN Notices, pages 435{451, 1992.[8] John Lamping. Typing the Specialization Interface. In Proceedings ofthe 8th Conference on Object-Oriented Programming Systems Languagesand Applications, volume 28(10) of ACM SIGPLAN Notices, pages 201{214, 1993.26 [9] Victor Lortz and Kang G. Shin. Combining Contracts and Exemplar-Based Programming for Class Hiding and Customization. In Proceed-ings of the 9th Conference on Object-Oriented Programming SystemsLanguages and Applications, volume 29(10) of ACM SIGPLAN Notices,pages 453{467, 1994.[10] Pattie Maes. Concepts and Experiments in Computational Re ection.In Proceedings of the 2nd Conference on Object-Oriented ProgrammingSystems Languages and Applications, volume 22(12) of ACM SIGPLANNotices, pages 147{155, 1987.[11] Satoshi Matsuoka, Takuo Watanabe, and Akinori Yonezawa. HybridGroup Re ective Architecture for Object-Oriented Concurrent Re ec-tive Programming. In P. America, editor, Proceedings the 6th Euro-pean Conference on Object-Oriented Programming, volume 512 of Lec-ture Notes in Computer Science, pages 231{250. Springer-Verlag, 1991.[12] Je McA er. Meta-Level Programming with CodA. In W. Olthof, ed-itor, Proceedings the 9th European Conference on Object-Oriented Pro-gramming, volume 952 of Lecture Notes in Computer Science, pages190{214. Springer-Verlag, 1995.[13] Mira Mezini. Supporting Evolving Objects Without Giving Up Classes.In Proceedings the 18th Conference on Technologies of Object-OrientedLanguages and Systems. Prentice Hall, 1995.[14] Ramana Rao. Implementational Re ection in Silica. In P. America, ed-itor, Proceedings the 6th European Conference on Object-Oriented Pro-gramming, volume 512 of Lecture Notes in Computer Science, pages251{267. Springer-Verlag, 1991.[15] Lynn Andrea Stein, Hennry Lieberman, and David Ungar. A SharedView of Sharing: The Treaty of Orlando. In W. Kim and F.H. Lo-chovsky, editors, Object-Oriented Concepts, Databases, and Applica-tions, pages 32{48. ACM Press, 1989.[16] Peter Wegner. Models and Paradigms of Interaction. Technical ReportCS-95-21, Brown University, 1995.27 [17] Peter Wegner and Stanley B. Zdonik. Inheritance as an IncrementalModi cation Mechanism or What Like Is and Isn't Like. In S. Gjessingand K. Nygaard, editors, Proceedings of the 3rd European Conference onObject-Oriented Programming, volume 322 of Lecture Notes in ComputerScience, pages 55{77. Springer-Verlag, 1988.[18] Yasuhiko Yokote. The Apertos Re ective Operating System: The Con-cept and its Implementation. In Proceedings of the 7th Conference onObject Oriented Programming Systems Languages and Applications, vol-ume 27(10) of ACM SIGPLAN Notices, pages 414{434, 1992.28
منابع مشابه
Classiication and Representation of Types in Tdl
This paper presents TDL, a typed feature-based representation language and inference system, speciically designed to support highly lexicalized constraint-based grammar theories. Type deenitions in TDL consist of type and feature constraints over the full Boolean con-nectives together with coreferences, thus making TDL Turing-complete. TDL provides open-and closed-world reasoning over types. Wo...
متن کاملOpen-Hole Size and Thermal Cycling Effects on Mass Loss and Surface Degradation of Polymer Matrix Composites
Degradation is a common problem for polymer matrix composites (PMCs) under low thermal cycling conditions. This paper investigates the effects of low thermal cycling on total mass loss (TML) and surface degradation of PMCs. Unnotched and open-hole specimens were weighed before and after low thermal cycling. The total mass loss and surface degradation of the specimens were studied over 250 cycle...
متن کاملSecurity testing of session initiation protocol implementations
The mechanisms which enable the vast majority of computer attacks are based on design and programming errors in networked applications. The growing use of voice over IP (VOIP) phone technology makes these phone applications potential targets. We present a tool to perform security testing of VOIP applications to identify security vulnerabilities which can be exploited by an attacker. Session Ini...
متن کاملInfluence of Real Ground Motion Records in Performance Assessment of RC Buildings
Reinforced concrete frame buildings with Open Ground Story (OGS) are one of the most common building configurations in urban habitat. These configurations are known to be vulnerable to seismic excitations, primarily due to the sudden loss in strength in the ground story and differential stiffness distribution throughout the structure. The differential stiffness distribution is attributed primar...
متن کاملFlexible incremental development by integrating specification and code
This paper describes the use of executable specifications to ease incremental development, by providing more flexibility regarding the order in which modules are implemented. In this approach, the architect provides a specification for each module in the module architecture view. While specifications must precisely describe the interactions among modules, they may abstract some of the functiona...
متن کاملView Maintenance after View Synchronization
While current view technology assumes that the ISs do not change their schema, our Evolvable View Environment (EVE) project addresses this problem by evolving the view deenitions aaected by IS schema changes, which we coin view synchronization. In EVE, the view synchronizer rewrites the view deenitions by replacing view components with suitable components from other ISs. However, after such a v...
متن کامل